<template>
    <div class="notifications">
        <slide-y-up-transition :duration="transitionDuration"
            group
            mode="out-in"
        >
            <notification
                v-for="notification in notifications"
                v-bind="notification"
                :clickHandler="notification.onClick"
                :key="notification.timestamp.getTime()"
                @close="removeNotification"
            >
            </notification>
        </slide-y-up-transition>
    </div>
</template>

<script>
    import Notification from './Notification.vue';
    import { SlideYUpTransition } from 'vue2-transitions';

    export default {
        components: {
            SlideYUpTransition,
            Notification
        },

        props: {
            transitionDuration: {
                type: Number,
                default: 200
            },

            overlap: {
                type: Boolean,
                default: false
            }
        },

        data() {
            return {
                notifications: this.$notifications.state
            };
        },

        methods: {
            removeNotification(timestamp) {
                this.$notifications.removeNotification(timestamp);
            }
        },

        created() {
            this.$notifications.settings.overlap = this.overlap;
        },

        watch: {
            overlap: function (newVal) {
                this.$notifications.settings.overlap = newVal;
            }
        }
    };
</script>
